package net.yc.web.imalachat.push;

import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
import net.yc.web.imalachat.push.provider.AuthRequestFilter;
import net.yc.web.imalachat.push.provider.GsonProvider;
import net.yc.web.imalachat.push.service.AccountService;
import org.glassfish.jersey.server.ResourceConfig;

import java.util.logging.Logger;

/**
 * @author: lyc
 * @data: 2021-12-13  08:01
 * @Description:
 */
public class Application extends ResourceConfig {
    public Application(){
        // 注册逻辑处理的包名
        packages(AccountService.class.getPackage().getName());

//        // 注册json转换器
//        register(JacksonJsonProvider.class);

        // 注册我们的全局请求拦截器
        register(AuthRequestFilter.class);

        /**
         * JacksonJsonProvider有一个问题，比如说Boolean变量，在输出的时候一定是一个以Z开头的Boolean变量
         * 但是有时候我们并不需要这种标识，这种情况用Jackson配置会特别复杂
         * 而且对于里面User里面的集合使用Jackson是会全量输出，全部遍历输出
         * 导致输出流完全被占满，无法正常工作
         * 替换为GSON
         */
        register(GsonProvider.class);

        // 注册日志输出
        register(Logger.class);


    }
}
